var request=require("request");

// 加载File System读写模块  
var fs = require('fs');  
// 加载编码转换模块  
var iconv = require('iconv-lite');   

var request_timer = null, req = null;
var headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36'
}

exports.load=function(url,callback)
{

// 请求30秒超时
request_timer = setTimeout(function() {
    req.abort();
    callback("Request Timeout.",null);
}, 30000);

 req=request(
        {
            url: url,
            method: 'GET',
            encoding: null,
            headers: headers

        },function(err, res, body)
        {
            //请求完成,清除定时器
            clearTimeout(request_timer);
            // 等待响应60秒超时
            var response_timer = setTimeout(function() 
            {
                res.destroy();
                callback("Response Timeout.",null);
            }, 60000);

            if (!err && res.statusCode == 200) {
                callback(err,body);
            }
            else
            {
                 callback('404 not Fund',null);
                 process.exit(0);
            }
        
        })

}


exports.createDownFile=function()
{
    var date=new Date();
    var year=date.getFullYear();
    var month=date.getMonth()+1;
    var day=date.getDate();

    if(month<10)
    {
        month="0"+month;
    }
    if(day<10)
    {
        day="0"+day;
    }
    var name=year.toString()+month.toString()+day.toString();
    //线上图片下载地址
    var imgPath="/home/wwwroot/code/gather/download/"+name+"/";
    //本地图片下载地址
    // var imgPath="../download/"+name+"/";

    return {
        year:year,
        name:name,
        imgPath:imgPath
    }
}


exports.checkAuthor=function(author)
{
	if(author)
    {
        if(author.indexOf("：")>0||author.indexOf(":")>0||author.indexOf("]")>0||author.indexOf("】")>0)
        {
            if(author.indexOf("：")>0)
            {
                //中文的冒号
                author=author.split("：");
            }
            else if(author.indexOf(":")>0)
            {
                author=author.split(":");

            }
            if(author[1].indexOf(")")>0||author[1].indexOf("]")>0)
            {
                author=author[1].substring(0,author[1].length-1);
            }
            else if(author[1].indexOf("】")>0)
            {
                author=author[1].substring(0,author[1].length-2);
            }
            else
            {
                author=author[1];
            }
        }
        return { author:author}

    }

}

exports.checkSource=function(source)
{
	    if(source.indexOf(":")>0||source.indexOf("：")>0)
        {
            if(source.indexOf("：")>0)
            {
                //中文的冒号
                source=source.split("：")[1].trim();
            }
            else if(source.indexOf(":")>0)
            {
                source=source.split(":")[1].trim();
            }
        }
        else
        {
            source=source;
        }
		return {source:source}
}


exports.checkDate=function(date)
{
	var timespan=0;
	if(date)
    {
        date=date.replace("年","-").replace("月","-").replace("月","-").replace("日"," ");
        timespan=new Date(date);
        timespan=timespan.getTime()/1000;
    }
    else
    {
        timespan=0;
    }
	return {timespan:timespan}

}

//获取组图图片链接的方法
exports.getPicList=function ($,cheerio,tag,website,imgArr,urlArr,urlCount,callback) {
    for(var i=0;i<urlCount;i++)
    {
        request(website+$(urlArr[i]).attr("href"),
            function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    //console.log(body);
                    var  $=cheerio.load(body);
                    imgArr.push(website+$(tag).find("img").attr("src"));
                    if(imgArr.length==urlCount)
                    {
                        callback(imgArr);
                    }
                }
            })
    }
}


//写入文件
  
exports.writeFile=function (str,file){  
    
    // 把中文转换成字节数组  
    var arr = iconv.encode(str, 'gbk');  
    //console.log(arr);  
      
    // appendFile，如果文件不存在，会自动创建新文件  
    // 如果用writeFile，那么会删除旧文件，直接写新文件  
    fs.appendFile(file, arr, function(err){  
        if(err)  
            console.log("fail " + err);  
        else  
            console.log("写入文件ok");  
    });  
}  
  
//读取文件
exports.readFile=function (file){  
    fs.readFile(file, function(err, data){  
        if(err)  
            console.log("读取文件fail " + err);  
        else{  
            // 读取成功时  
            // 输出字节数组  
           // console.log(data);  
            // 把数组转换为gbk中文  
            var str = iconv.decode(data, 'gbk');  
            console.log("txt文档中的为"+str);  
        }  
    });  
}  